package com.siao.mvc.core
{
	import com.siao.mvc.Module;
	
	/**
	 * 状态接口
	 * @author SiaoLeon
	 */
	public interface IState extends INode
	{
		/**
		 * 当前状态的标识
		 * @return
		 */
		function get key():Object;
		
		/**
		 * 获取模块
		 * @return
		 */
		function get module():Module;
		
		/**
		 * 设置模块
		 * @param value
		 */
		function set module(value:Module):void;
		
		/**
		 * 初始化该状态时处理函数
		 */
		function onInit():void;
		
		/**
		 * 进入该状态时处理函数
		 */
		function onEnter():void;
		
		/**
		 * 退出该状态时处理函数
		 */
		function onExit():void;
	
	}
}
